"""
用函数实现：
接收用户输入的一个数字（关键字参数方式传入函数内），输出该数字的乘法表，数字大于99则提示输入数字过大
注意字符串格式化输出的使用，控制每一列的宽度为11，左对齐
两个函数，一个用于打印乘法表，一个用于获取用户输入的数字并判断其合法性
"""


def get_input():
    """
    获取用户输入的数字，判断其合法性
    如果合法则返回，否则提示用户重新输入
    循环到用户输入合法为止
    :return: 返回值为用户输入的数字
    """
    while True:                                 # 循环获取用户输入
        num = input("请输入一个数字：")
        if num.isdigit():                       # 判断是否为数字
            num = int(num)
            if num > 99:
                print("输入数字过大，请重新输入")
            elif num <= 0:
                print("输入数字过小，请重新输入")
            else:
                return num                      # 返回数字，结束循环
        else:
            print("输入不合法，请重新输入")


def print_table(num):
    """
    打印乘法表
    """
    for i in range(1, num + 1):
        for j in range(1, i + 1):
            print(f"{j} * {i} = {i * j:<11}", end="")
        print()


if __name__ == '__main__':
    num = get_input()
    print_table(num=num)

